package com.cicigodd.brick.plug.douyin.mini.service.impl;

import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.cicigodd.brick.plug.douyin.mini.entity.DyJscodeSessionResult;
import com.cicigodd.brick.plug.douyin.mini.request.DyJscodeSessionRequest;
import com.cicigodd.brick.plug.douyin.mini.service.DouyinMiniService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Slf4j
@Service
public class DouyinMiniServiceImpl implements DouyinMiniService {

    @Value("${dy.miniapp.appid}")
    private String appid;

    @Value("${dy.miniapp.secret}")
    private String secret;

    @Override
    public DyJscodeSessionResult getSessionInfo(String code) {
        DyJscodeSessionRequest request = new DyJscodeSessionRequest();
        request.setCode(code);
        request.setAppid(appid);
        request.setSecret(secret);
        String res = HttpRequest.post("https://developer.toutiao.com/api/apps/v2/jscode2session")
                .body(JSONObject.toJSONString(request))
                .execute().body();
        JSONObject jsonObject = JSONObject.parseObject(res);
        String data = jsonObject.get("data").toString();
        log.info(data);
        return JSONObject.parseObject(data, DyJscodeSessionResult.class);
    }
}
